/*=========================================================================== * Copyright ( c ) Robert Mayhew 2002 * All Rights Protected * This software is protected by international copyright law. No part of * this software may be reproduced, duplicated, published, distributed, * rented out, transmitted, or communicated to the public by * telecommunication, in any form or by any means except as expressly * permitted, in writing, by Robert Mayhew. *=========================================================================== * $Id: DBConnectionMgr.java,v 1.1.1.1 2003/10/13 19:19:31 Administrator Exp $ *=========================================================================== */ package com.diodesoftware.dbmapper; import java.sql.*; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; import org.apache.log4j.*; import com.diodesoftware.scb.ClipConfig; import com.diodesoftware.scb.agents.SystemStatus; import com.mchange.v2.c3p0.ComboPooledDataSource; public class DBConnectionMgr { private static Logger log = Logger.getLogger(DBConnectionMgr.class); private static ComboPooledDataSource cpds = null; public DBConnectionMgr() { try{ if(cpds != null) return; cpds = new ComboPooledDataSource(); ClipConfig.getInstance(); cpds.setDriverClass( "com.mysql.jdbc.Driver" ); //loads the jdbc driver String url = ClipConfig.DB_URL + ClipConfig.DB_NAME+"?useEncoding=true&characterEncoding=UTF-8"; cpds.setJdbcUrl(url); cpds.setUser(ClipConfig.DB_USERNAME); cpds.setPassword(ClipConfig.DB_PASSWORD); cpds.setMinPoolSize(5); cpds.setAcquireIncrement(5); cpds.setMaxPoolSize(200); cpds.setCheckoutTimeout(6000); cpds.setMaxConnectionAge(10); }catch(Exception e) { e.printStackTrace(); } } public Connection getConnection() { return getSimpleConnection(); } public void returnConnection(Connection con) { if(con!=null) try{con.close();}catch(Exception e){throw new RuntimeException(e);} } private Connection getSimpleConnection() { try { return cpds.getConnection(); }catch(SQLException e) { int code = e.getErrorCode(); System.err.println("**************************Error Code " + code + " message " + e.getMessage()); throw new RuntimeException(e); } // String url = null; // Connection result = null; // try // { // Class.forName("com.mysql.jdbc.Driver"); // url = "jdbc:mysql://localhost/" + ClipConfig.DB_NAME; // url = ClipConfig.getInstance().DB_URL + ClipConfig.getInstance().DB_NAME + "?useUnicode=yes&characterEncoding=UTF-8"; // result = DriverManager.getConnection(url, ClipConfig.getInstance().DB_USERNAME, ClipConfig.getInstance().DB_PASSWORD); // } // catch (Exception e) // { // log.error("Can't get db connection url[" + url + "]",e); // SystemStatus.getInstance().setERROR(true); // throw new RuntimeException(e); // } // return result; } public Connection testConnection(String url, String dbName, String username, String password) throws SQLException, Exception { String conUrl = null; Connection result = null; Class.forName("com.mysql.jdbc.Driver"); url = url + dbName; result = DriverManager.getConnection(url, username, password); return result; } }